#include "main.h"
#include "mpu6050.h"

extern float Velo[3],acce[3],angle[3];
extern int sign;
extern unsigned char Temp[11],Re_buf[11],Res1;

void Mpu6050_Init()
{
	HAL_UART_Receive_IT(&huart3,&Res1,1);
}

void Mpu6050_Get_All(int sign)
{
	if(sign)
      {
         sign=0;
         if(Temp[0]==0x55)       //检查帧头
         {  
            switch(Temp[1])
            {
               case 0x51: //标识这个包是加速度包
                  acce[0] = ((short)(Temp[3]<<8 | Temp[2]))/32768.0*16;      //X轴加速度
                  acce[1] = ((short)(Temp[5]<<8 | Temp[4]))/32768.0*16;      //Y轴加速度
                  acce[2] = ((short)(Temp[7]<<8 | Temp[6]))/32768.0*16;      //Z轴加速度
                  break;
               case 0x52: //标识这个包是角速度包
                  Velo[0] = ((short)(Temp[3]<<8| Temp[2]))/32768.0*2000;      //X轴角速度
                  Velo[1] = ((short)(Temp[5]<<8| Temp[4]))/32768.0*2000;      //Y轴角速度
                  Velo[2] = ((short)(Temp[7]<<8| Temp[6]))/32768.0*2000;      //Z轴角速度
                  break;
               case 0x53: //标识这个包是角度包
                  angle[0] = ((short)(Temp[3]<<8| Temp[2]))/32768.0*180;   //X轴滚转角（x 轴）
                  angle[1] = ((short)(Temp[5]<<8| Temp[4]))/32768.0*180;   //Y轴俯仰角（y 轴）
                  angle[2] = ((short)(Temp[7]<<8| Temp[6]))/32768.0*180;   //Z轴偏航角（z 轴）

                 // printf("X轴角度：%.2f   Y轴角度：%.2f   Z轴角度：%.2f\r\n",angle[0],angle[1],angle[2]);
                  break;
               default:  break;
            }
     }}
}